package com.vilen.learn.java7;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * Created by vilen on 2017/9/20.
 * 转换路径最多的是工具软件。比如你可能需要比较文件之间的关系，以便了解源码目录树的结构是否符合编码规范。
 * 或者在shell脚本中执行程序时可能会传入一些Path参数，并需要把这些参数变成有意义的Path。
 */
public class Listing_2_2 {
    public static void main(String[] args) {
        Path prefix = Paths.get("/uat/");
        Path completePath = prefix.resolve("conf/application.properties");
        System.out.println(completePath);
        /**
          *  uat\conf\application.properties
         **/


        /*
            要取得两个Path之间的(相对)路径，可以用relativize(相对于)(Path)方法
         */
        String logging = "\\uat\\conf\\application.properties";
        String configuration = "\\uat\\conf\\11\\application.properties";
        Path logDir = Paths.get(logging);
        Path confDir = Paths.get(configuration);
        Path pathToConfDir = logDir.relativize(confDir);
        System.out.println(pathToConfDir);


        /**
         * java.io.File类中新增了toPath()方法，它可以马上把已有的File转化为新的Path。
            Path类中有个toFile()方法，它可以马上把已有的Path转化为File。
         */
        File file = new File("Listing_2_1.java");
        Path listing= file.toPath();
        System.out.println(listing.toAbsolutePath());
        File file1 = listing.toFile();
        System.out.println(file.getName());
    }
}
